﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL.Entity;

namespace DAL.Persistencia
{
    public class ContatoClienteDAL
    {

        private NewTierraEntities Con;

        public ContatoClienteDAL()
        {
            Con = new NewTierraEntities();
        }

        public void Salvar(Cli_Contato c)
        {
            try
            {
                Con.AddToCli_Contato(c);
                Con.SaveChanges();
            }
            catch 
            {
                throw;
            }
        }

        public void Excluir(Cli_Contato c)
        {
            try
            {
                Con.DeleteObject(c);
                Con.SaveChanges();
            }
            catch 
            {                
                throw;
            }
        }

        public void Atualizar(Cli_Contato novo)
        {
            try
            {
                Cli_Contato antigo = ObterPorId(novo.Contato_id);

                antigo.Contato_nome = novo.Contato_nome;
                antigo.Contato_position = novo.Contato_position;
                antigo.Contato_telefone = novo.Contato_telefone;
                antigo.Contato_fax = novo.Contato_fax;
                antigo.Contato_email = novo.Contato_email;
                antigo.Contato_dataNiver = novo.Contato_dataNiver;
                antigo.Contato_mailing = novo.Contato_mailing;
                antigo.Cliente_id = novo.Cliente_id;

                Con.SaveChanges();
            }
            catch 
            {
                throw;
            }
        }

        public List<Cli_Contato> ListarTodos(int IdCliente)
        {
            try
            {
                return Con.Cli_Contato.Where(c => c.Cliente_id == IdCliente).ToList();
            }
            catch 
            {
                throw;
            }
        }

        public Cli_Contato ObterPorId(int IdContato)
        {
            try
            {
                return Con.Cli_Contato.Where(c => c.Contato_id == IdContato).SingleOrDefault();
            }
            catch 
            {
                throw;
            }
        }

        public Cli_Contato ObterPorIdCliente(int IdCliente)
        {
            try
            {
                return Con.Cli_Contato.Where(c => c.Cliente_id == IdCliente).SingleOrDefault();
            }
            catch
            {
                throw;
            }
        }

    }
}
